<HTML><HEAD><TITLE>?Vars ::  ?Domain</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(fd)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>?Vars ::  ?Domain</H1>
Terms in Vars have the domain Domain.


<DL>
<DT><EM>?Vars</EM></DT>
<DD>A variable or a list of variables.
</DD>
<DT><EM>+Domain</EM></DT>
<DD>Variable, integer, integer interval or a list of integers                and integer intervals.
</DD>
</DL>
<H2>Description</H2>
   The main purpose of this predicate is to create domain variables.
   Domain can be a closed integer interval denoted as Min..Max, or a sorted
   list of integer intervals and/or elements.  If Vars is already a domain
   variable, its domain will be updated according to the new domain; if it
   is instantiated, the predicate checks if the value lies in the domain.
   Otherwise, if Vars is a free variable, it is converted to a domain
   variable.  If Vars is a list, this will be performed for all its
   elements.

<P>
   If Vars is a domain variable and Domain is free, it is bound to the
   domain of the variable.

<P>

<H3>Fail Conditions</H3>
   Fails if Vars cannot have the domain Domain.


<H3>Resatisfiable</H3>
   No.
<H2>See Also</H2>
<A HREF="../../lib/fd/HNN-2.html">#:: / 2</A>, <A HREF="../../lib/fd/dom_to_list-2.html">dom_to_list / 2</A>, <A HREF="../../lib/fd/is_domain-1.html">is_domain / 1</A>
</BODY></HTML>
